package main

import (
	"fmt"
	"math/rand"
)

func main() {
	// 1. 九九乘法表
	for i := 1; i < 10; i++ {
		row := ""
		for j := 1; j <= i; j++ {
			multi := j * i

			if j == 2 && multi < 10 {
				row += fmt.Sprintf("%d*%d=%d  ", j, i, multi)
			} else {
				row += fmt.Sprintf("%d*%d=%d ", j, i, multi)
			}
		}

		fmt.Println(row)
	}

	fmt.Println("~~~~~~~~~~~~~~~~~")

	// 2. 随机数
	// 此处20以内不包含20
	sum, multi, randomStr := 0, 1, ""

	for i := range 20 {
		n := rand.Intn(19) + 1
		randomStr += fmt.Sprintf("%d ", n)

		if i&1 == 0 {
			sum += n
		} else {
			multi *= n
		}
	}

	fmt.Println("20以内随机正整数:", randomStr)
	fmt.Println("奇数个和:", sum)
	fmt.Println("偶数个积:", multi)

	fmt.Println("~~~~~~~~~~~~~~~~~")

	// 3. 斐波那契数列
	fibonacciStr := ""

	for n, temp := 1, 0; ; {
		if n >= 100 {
			break
		}

		fibonacciStr += fmt.Sprintf("%d ", n)
		n, temp = temp, n
		n = n + temp
	}

	fmt.Println("100以内斐波那契数列:", fibonacciStr)
}
